package join.model.beans;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.springframework.format.annotation.DateTimeFormat;

import join.util.AppListUtil;
import join.util.FormatterUtil;
import join.util.RepositoryUtil;

@Entity
@Table(name="proyecto_control_cambio", schema=RepositoryUtil.ESQUEMA_NOMBRE)
public class ProyectoControlCambio {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name ="id", nullable=false)
	private Long id;
	@Column(name ="proyecto", nullable=false)
	private Long proyecto;
	@Column(name ="tipo", nullable=false)
	private String tipo;
	@Column(name ="nombre", nullable=true)
	private String nombre;
	@Column(name ="impacto", nullable=true)
	private String impacto;
	@Column(name ="descripcion", nullable=true)
	private String descripcion;
	@Column(name ="responsable", nullable=false)
	private String responsable;
	@Column(name ="fecha", nullable=true)
	@DateTimeFormat(pattern = FormatterUtil.DATE_FORMAT)
	private Date fecha;
	@Column(name ="estado", nullable=false)
	private String estado;
	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * @return the proyecto
	 */
	public Long getProyecto() {
		return proyecto;
	}
	/**
	 * @param proyecto the proyecto to set
	 */
	public void setProyecto(Long proyecto) {
		this.proyecto = proyecto;
	}
	/**
	 * @return the tipo
	 */
	public String getTipo() {
		return tipo;
	}
	/**
	 * @param tipo the tipo to set
	 */
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}
	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	/**
	 * @return the responsable
	 */
	public String getResponsable() {
		return responsable;
	}
	/**
	 * @param responsable the responsable to set
	 */
	public void setResponsable(String responsable) {
		this.responsable = responsable;
	}
	/**
	 * @return the fecha
	 */
	public Date getFecha() {
		return fecha;
	}
	/**
	 * @param fecha the fecha to set
	 */
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	/**
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}
	/**
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	/**
	 * @return the impacto
	 */
	public String getImpacto() {
		return impacto;
	}
	/**
	 * @param impacto the impacto to set
	 */
	public void setImpacto(String impacto) {
		this.impacto = impacto;
	}
	
	/**
	 * Nombre de la categoria
	 * @return
	 */
	public String getTipoNombre (){
		return AppListUtil.listaProcesoTexto("proyectoControlCambioTipo", getTipo());
	}
	
	/**
	 * Nombre del estado
	 * @return
	 */
	public String getEstadoNombre (){
		return AppListUtil.listaProcesoTexto("proyectoControlCambioEstado", getEstado());
	}
}